package cz.vse.po1715.piskorky.umela_inteligence;

/*******************************************************************************
 * Instance třídy {@code SměrPiškvorek} představují vlastnosti charakteristické
 * pro skupiny piškvorek natočené do jednotlivých směrů
 *
 * @author    Vladimír FOREJT
 * @version   0.00.000
 */
public class SměrPiškvorek {
//== KONSTANTNÍ ATRIBUTY TŘÍDY =================================================
//== PROMĚNNÉ ATRIBUTY TŘÍDY ===================================================
//== STATICKÝ INICIALIZAČNÍ BLOK - STATICKÝ KONSTRUKTOR ========================
//== KONSTANTNÍ ATRIBUTY INSTANCÍ ==============================================
    
    /** Nejnižší a nejvyšší index řádků / sloupců, které tvoří obdelník na 
     * hracím poli
     */
    private final int počátečníŘádek;

    
    private final int koncovýŘádek;
    private final int počátečníSloupec;
    private final int koncovýSloupec;
    
    /** Vzdálenost polí piškvorky natočených do jednotlivých směrů - využívá se
     * při práci s políčky ve vektoru polí */
    private final int vzdálenostSouseda;
    
//== PROMĚNNÉ ATRIBUTY INSTANCÍ ================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ TŘÍDY ========================================
//== OSTATNÍ NESOUKROMÉ METODY TŘÍDY ===========================================

//##############################################################################
//== KONSTRUKTORY A TOVÁRNÍ METODY =============================================
    /***************************************************************************
     * @param Nejnižší a nejvyšší index řádků / sloupců, které tvoří obdelník na 
     *          hracím poli
     * @param vzdálenostSouseda vzdálenost polí piškvorky v daném směru
     */
    public SměrPiškvorek(int počátečníŘádek, int koncovýŘádek,
             int počátečníSloupec, int koncovýSloupec, int vzdálenostSouseda) {
        this.počátečníŘádek = počátečníŘádek;
        this.koncovýŘádek = koncovýŘádek;
        this.počátečníSloupec = počátečníSloupec;
        this.koncovýSloupec = koncovýSloupec;
        this.vzdálenostSouseda = vzdálenostSouseda;
    }
//== ABSTRAKTNÍ METODY =========================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ INSTANCÍ =====================================
    
    int getKoncovýSloupec() {
        return koncovýSloupec;
    }

    int getKoncovýŘádek() {
        return koncovýŘádek;
    }

    int getPočátečníSloupec() {
        return počátečníSloupec;
    }

    int getPočátečníŘádek() {
        return počátečníŘádek;
    }

    int getVzdálenostSouseda() {
        return vzdálenostSouseda;
    }
    
//== OSTATNÍ NESOUKROMÉ METODY INSTANCÍ ========================================
//== SOUKROMÉ A POMOCNÉ METODY TŘÍDY ===========================================
//== SOUKROMÉ A POMOCNÉ METODY INSTANCÍ ========================================
//== INTERNÍ DATOVÉ TYPY =======================================================
//== TESTY A METODA MAIN =======================================================
//
//    /***************************************************************************
//     * Testovací metoda.
//     */
//    public static void test()
//    {
//        SměrPiškvorek inst = new SměrPiškvorek();
//    }
//    /** @param args Parametry příkazového řádku - nepoužívané. */
//    public static void main( String[] args )  {  test();  }
}
